Genotype

Hint: Although it may look complicated, it's very easy. Just open 'species information window' (see interface docs) and play with the genotype. You can enter anything and get immediate preview. Try it!

Organism structure:

X - stick, () - branch
structure is built like a tree, new sticks are joined to the previous ones' ends
X(X,X) means two sticks from one-stick root
X(X,X,X) means three etc.
X(X,X,) is also possible; X(,X,,,X,,X,,) too etc.
inside parenthesis, the full angle is divided into as many parts as many comas+2, and each stick in such 'junction' has as much freedom.

Modificators:

Modificators can be placed before X's and ('s. They affect the following X and, usually less and less, further following Xs. Modificators modify stick position and its features. Big and small letters can be used; big letters increase the given feature while small ones decrease it.

Examples:

XXX(XX,X)

X(X,RRX(X,X))

XlCXlCXlCX

Organism control (neuron net of any topology):

Neurons are placed in [], after X's.
Neuron inputs can be taken from different signal sources - other neurons' outputs or receptors. A neuron input can also have a constant value. Neuron can control its stick's bend or rotation.

The syntax is: [ control input : weight , input : weight , input...]
control: @ (stick's rotation) or | (stick bend) or nothing (omitted)
input: any number (means input from neuron) or one of the special neuron inputs:

'weight' is a floating point number, describing connection weight (for neuron links and receptors) or the parameter value.

Examples:

X[@-1:2,1:3]
means that a stick has one neuron 'in' it. It controls the stick's rotation (@), and the neuron has two inputs: one comes from -1 relative position in the genotype, the other from +1 rel. position. The first 'signal' weight is 2, the other is 3.

X[|*:1,G:2]
is a stick with one neuron controlling its bend, having two inputs: one constantly equal 1 and the other connected to a gyroscope (placed on the stick) weighted 2.

One stick can have many neurons - X[.....][.....][.....]

Example:
XX[|0:1]X[@-1:1.2,1:2.3][G:1]
neuron (1) affects stick's bend
neuron (2) affects stick's rotation
neuron (3): one input: gyroscope